using System;
using System.IO;

namespace AnTunes
{
	public abstract class Track
	{
		public abstract Stream OpenStream();
		
		public TrackInfo Info
		{
			get
			{
				if(info_ == null)
				{
					UpdateInfo();
				}
				return info_;
			}
			protected set
			{
				info_ = value;
			}
		}
		
		protected abstract void UpdateInfo();
		protected TrackInfo info_;
	}
}

